package List;

import java.util.*;

/**
 * @author 王艺锡
 * @version 1.0
 */
public class Exercise02 {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        List list = new ArrayList();
        //List list = new Vector();
        //List list = new LinkedList();//三种都可以,都是List接口的实现子类s
        list.add(new Book("红楼梦",100,"曹雪芹"));
        list.add(new Book("西游记",10,"吴承恩"));
        list.add(new Book("水浒传",205,"施耐庵"));
        list.add(new Book("三国演义",99,"罗贯中"));

        System.out.println("=====交换前=====");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            Object book = iterator.next();
            System.out.println(book);
        }
        Bubble(list);
        System.out.println("======交换后=====");
        for (Object o :list) {
            System.out.println(o);
        }


    }
    @SuppressWarnings({"all"})
    public static void Bubble(List list){
        for (int i = 0;i<list.size() - 1;i++){
            boolean flag = false;
            for (int j = 0;j<list.size() - i - 1;j++){
                Book book1 = (Book)list.get(j);
                Book book2 = (Book)list.get(j + 1);
                if(book1.getPrice() > book2.getPrice()){
                    list.set(j,book2);
                    list.set(j + 1,book1);
                    flag = true;
                }
            }
            if(flag == false){
                break;
            }
        }
    }
}
class Book{
    private String name;
    private double price;
    private String author;

    public Book(String name, double price, String author) {
        this.name = name;
        this.price = price;
        this.author = author;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    @Override
    public String toString() {
        return "名称:" + name + "\t\t" +
                "价格:" + price + "\t\t" +
                "作者:" + author;
    }
}
